package org.example.controller.SpringBoot300;

import org.example.util.file.FileUtil;
import org.example.util.log.Logac;

import java.io.IOException;
import java.util.List;

/**
 * @auther admin闫
 * @Descriptopn 文件分类：剥离源码代码文件中论文/视频/三个一组{开发完成}
 * @date 2024/4/4 17:59
 */
public class SpringBoot300FileFL {

    /*
    * 1.遍历第一层目录，拿到所有的目录，放到List里面
    * 2.遍历地二层级目录，找到第二级的三个文件夹（视频，源码，图片）
    * 3.进入视频文件夹里查看是否有视频
    * 4.进入源码文件夹里查看是否有论文.doc
    * 5.如果都有则放到第一期里，并且记录放了一个，如果一期放了三个则放第二期里
    * 6.如果没有则记录
    * */
    public static void main(String[] args) {
        //整理好的要放在哪里
        String mudidir="H:\\毕业设计工作目录\\batch_processing\\batch_processing\\mudidir";
        boolean sgip=false;
        boolean lunw=false;
        String sgipls="";
        String lunwls="";
        int num=0;
        int qi=0;
        //已解压的源码目录
        List<String> xiaYiPath = FileUtil.getXiaYiPath("G:\\300项目整理\\300+Springboot素材与视频留存");
        for (String s : xiaYiPath) {
            List<String> xiaYiPath1 = FileUtil.getXiaYiPath(s);
            if (xiaYiPath1.size()<3){
                Logac.log(FileUtil.getFileName(s)+"【缺少文件】");
                continue;
            }
            for (String s1 : xiaYiPath1) {
                //处理视频文件的逻辑
                if (FileUtil.getFileName(s1).equals("运行视频")){//进入视频文件夹查看是否有视频
                    List<String> allFilePaths = FileUtil.getAllFilePaths(s1);
                    if (allFilePaths.size()==1){
                        for (String allFilePath : allFilePaths) {
                            sgip=true;
                            sgipls=allFilePath;
                            System.out.println(allFilePath);
                        }
                    }
                } else if (FileUtil.getFileName(s1).equals("运行截图")) {
                    //截图不做任何处理
                }else {//这是处理源码文件的逻辑
                    List<String> allFilePaths = FileUtil.getAllFilePaths(s1);
                    for (String allFilePath : allFilePaths) {
//                        System.out.println(allFilePath);
                        if (FileUtil.getFileName(allFilePath).contains("论文")){
                            lunw=true; //
                            lunwls=allFilePath;
                            System.out.println(allFilePath);
                        }
                    }
                }
            }
            System.out.println("");
            System.out.println(s);

            //处理复制文件与计数
            if (sgip){
                if (num%3==0){
                    qi++;
                    boolean b = FileUtil.ensureFolderExists(mudidir + "\\" + qi + "期");
                }
                FileUtil.ensureFolderExists(mudidir + "\\" + qi + "期"+"\\"+FileUtil.getFileName(s));
                try {
                    FileUtil.copyFile(sgipls,mudidir + "\\" + qi + "期"+"\\"+FileUtil.getFileName(s)+"\\"+FileUtil.getFileName(sgipls));
                } catch (IOException e) {
                    Logac.log(sgipls+"【复制报错】");
                }
                num++;
                if (lunw){
                    try {
                        FileUtil.copyFile(lunwls,mudidir + "\\" + qi + "期"+"\\"+FileUtil.getFileName(s)+"\\"+FileUtil.getFileName(lunwls));
                    } catch (IOException e) {
                        Logac.log(lunwls+"【复制报错】");
                    }
                }else {
                    Logac.log(FileUtil.getFileName(s)+"【没有论文！】");
                }
                 sgip=false;
                 lunw=false;
                 sgipls="";
                 lunwls="";
            }else {
                Logac.log(s+"【内没有视频！或者视频多】");
            }
        }
    }
}
